import { NETWORK_TO_SHORT_NETWORK_NAME_MAP } from '../../../shared/constants/bridge';
import {
  MULTICHAIN_NETWORK_TO_NICKNAME,
  MultichainNetworks,
} from '../../../shared/constants/multichain/networks';
import {
  ARBITRUM_DISPLAY_NAME,
  AVALANCHE_DISPLAY_NAME,
  BASE_DISPLAY_NAME,
  BNB_DISPLAY_NAME,
  CELO_DISPLAY_NAME,
  LINEA_MAINNET_DISPLAY_NAME,
  MAINNET_DISPLAY_NAME,
  OPTIMISM_DISPLAY_NAME,
  POLYGON_DISPLAY_NAME,
  ZK_SYNC_ERA_DISPLAY_NAME,
} from '../../../shared/constants/network';
import { AggregatorNetwork } from './types';

export const defaultBuyableChains: AggregatorNetwork[] = [
  {
    active: true,
    chainId: MultichainNetworks.BITCOIN,
    chainName: MULTICHAIN_NETWORK_TO_NICKNAME[MultichainNetworks.BITCOIN],
    shortName: NETWORK_TO_SHORT_NETWORK_NAME_MAP[MultichainNetworks.BITCOIN],
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: MultichainNetworks.SOLANA,
    chainName: MULTICHAIN_NETWORK_TO_NICKNAME[MultichainNetworks.SOLANA],
    shortName: NETWORK_TO_SHORT_NETWORK_NAME_MAP[MultichainNetworks.SOLANA],
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 1,
    chainName: MAINNET_DISPLAY_NAME,
    shortName: 'Ethereum',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 10,
    chainName: OPTIMISM_DISPLAY_NAME,
    shortName: 'Optimism',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 25,
    chainName: 'Cronos Mainnet',
    shortName: 'Cronos',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 56,
    chainName: BNB_DISPLAY_NAME,
    shortName: 'BNB Chain',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 100,
    chainName: 'Gnosis Mainnet',
    shortName: 'Gnosis',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 137,
    chainName: POLYGON_DISPLAY_NAME,
    shortName: 'Polygon',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 250,
    chainName: 'Fantom Mainnet',
    shortName: 'Fantom',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 324,
    chainName: ZK_SYNC_ERA_DISPLAY_NAME,
    shortName: 'zkSync Era',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 1101,
    chainName: 'Polygon zkEVM',
    shortName: 'Polygon zkEVM',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 1284,
    chainName: 'Moonbeam Mainnet',
    shortName: 'Moonbeam',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 1285,
    chainName: 'Moonriver Mainnet',
    shortName: 'Moonriver',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 8453,
    chainName: BASE_DISPLAY_NAME,
    shortName: 'Base',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 42161,
    chainName: ARBITRUM_DISPLAY_NAME,
    shortName: 'Arbitrum',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 42220,
    chainName: CELO_DISPLAY_NAME,
    shortName: 'Celo',
    nativeTokenSupported: false,
  },
  {
    active: true,
    chainId: 43114,
    chainName: AVALANCHE_DISPLAY_NAME,
    shortName: 'Avalanche C-Chain',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 59144,
    chainName: LINEA_MAINNET_DISPLAY_NAME,
    shortName: 'Linea',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 1313161554,
    chainName: 'Aurora Mainnet',
    shortName: 'Aurora',
    nativeTokenSupported: false,
  },
  {
    active: true,
    chainId: 1666600000,
    chainName: 'Harmony Mainnet (Shard 0)',
    shortName: 'Harmony (Shard 0)',
    nativeTokenSupported: true,
  },
  {
    active: true,
    chainId: 11297108109,
    chainName: 'Palm Mainnet',
    shortName: 'Palm',
    nativeTokenSupported: false,
  },
];
